Method and apparatus for providing advanced IP telephony services in an intelligent endpoint

ABSTRACT

A method and apparatus in a communications system for providing advanced Internet Protocol (IP) telephony services in an intelligent endpoint. The apparatus and method of the present invention provides a user with the capability to update a local directory from a directory server, perform click to call functions, and perform intelligent processing of incoming calls.

1. FIELD OF THE INVENTION

[0001] The present invention relates generally to methods and apparatusfor providing advanced IP telephony services in an intelligent endpoint.Specifically, the present invention is directed to an IP telephonyintelligent endpoint that is capable of updating local IP telephonydirectories from an IP network server, performing click-to-dial servicesusing the local IP telephony directories, and performing advanced IPtelephony services on incoming IP telephony communications.

2. BACKGROUND OF THE INVENTION

[0002] Internet Protocol (IP) telephony is generally known in the art.In IP telephony, a user may make telephone calls over an IP network,such as the Internet. One of the main advantages of using IP telephonyis that all IP telephone calls are considered local area telephonecalls. This is because the user typically makes a local telephone callto an IP server in order to gain access to the IP network and from thereon, the telephone call is merely comprised of IP data packets over theIP network. Thus, long distance charges for long distance telephonecalls are not incurred when the long distance telephone call is an IPtelephony call.

[0003] Typically, the user must have an IP configured telephone or mustdial into an IP telephony server in order to initiate the IP telephonycommunication. The known IP configured telephones are “non-intelligent”telephones, meaning that they rely on the IP network to provide advancedservices, such as call forwarding.

[0004] Because network evolution is a slow process, a large amount oftime may pass before new advanced services are made available to IPtelephony users. Furthermore, IP network based advanced services arevery inflexible and do not allow individual users to customize their IPtelephony service. Thus, it would be beneficial to have an intelligentIP network endpoint device that is easily upgradable and provides theability to customized IP telephony service.

SUMMARY OF THE INVENTION

[0005] The present invention provides methods and apparatus forproviding advanced IP telephony services using an intelligent endpointdevice. The apparatus includes a directory update device, a click tocall device and an incoming call processor.

[0006] The apparatus is capable of performing updates to a localdirectory by retrieving directory information from a directory serverusing an Internet connection. The Internet connection makes use of a webbrowser application and a directory server applet to perform thedownload of updated directory information. In this way, firewalls andother security precautions are circumvented so that the directoryinformation may be downloaded.

[0007] The apparatus further compares the directory update informationagainst local directory information to determine if correspondingdirectory listings are present. If so, the apparatus provides the userwith the option to accept the update directory information from thedirectory server, keep the local directory information, select portionsof the update directory information and the local directory informationfor creating a new combined directory listing, or to add a new directorylisting using the update directory information.

[0008] The apparatus may further use either directory information fromthe directory server or local directory information to initiate IPtelephony calls using a click to call interface. The user need onlyselect a desired party's directory listing and click a virtual buttoncorresponding to a call function. If the directory listing is on thedirectory server, the directory listing selection may be made using abrowser application that initiates an applet to download correspondingdirectory information to the apparatus and to instruct the apparatus toinitiate an IP telephony communication connection. Otherwise, the localdirectory listing is utilized.

[0009] The apparatus further performs intelligent processing of incomingIP telephony calls. Based on an identification of the calling party, theapparatus is able to screen calls and perform customized intelligentprocessing on the incoming IP telephony calls. The customizedintelligent processing may include ignoring the call, redirecting thecall to another address, redirecting the call to a web page orelectronic mail address, playing a greeting, and/or executing anapplication. The particular intelligent processing may be customizedbased on time of day, day of week, date range, and the like.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The novel features believed characteristic of the invention areset forth in the appended claims. The invention itself, however, as wellas a preferred mode of use, further objectives and advantages thereof,will best be understood by reference to the following detaileddescription of an illustrative embodiment when read in conjunction withthe accompanying drawings, wherein like numerals designate likeelements, and wherein:

[0011]FIG. 1 is an exemplary block diagram of a communication system inwhich the present invention may be implemented;

[0012]FIG. 2 is an exemplary block diagram of the intelligent IPtelephony device;

[0013]FIG. 3 is an exemplary block diagram illustrating the mechanism bywhich a local directory is updated from a directory server;

[0014]FIG. 4 is an exemplary diagram of a directory listing graphicaluser interface according to the present invention;

[0015]FIG. 5 is an exemplary diagram of a graphical user interface forcomparing a local directory listing and a directory server listingaccording to the present invention;

[0016]FIG. 6 is an exemplary diagram of a graphical user interface fordisplaying update results;

[0017]FIG. 7A is an exemplary diagram of a graphical user interface forperforming click to call functions based on information from a localdirectory;

[0018]FIG. 7B is an exemplary diagram of a web browser used to perform aclick to call function based on directory information from a directoryserver;

[0019]FIG. 8 is an exemplary diagram of a graphical user interface forentering a screen entry;

[0020]FIG. 9 is an exemplary diagram of a graphical user interfaceillustrating the screen option “Day of Week”;

[0021]FIG. 10 is an exemplary diagram of a graphical user interfaceillustrating the screen option “Until Date”;

[0022]FIG. 11 is an exemplary diagram of a graphical user interfaceillustrating the screen option “Always”;

[0023]FIG. 12 is a flowchart outlining an exemplary operation of thedirectory update device of FIG. 3;

[0024]FIG. 13 is a flowchart outlining an exemplary operation of theclick to call device of FIG. 3; and

[0025]FIG. 14 is a flowchart outlining an exemplary operation of theincoming call processor of FIG. 3.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0026]FIG. 1 is an exemplary block diagram of a communication system inwhich the present invention may be implemented. Communications system100 is a network of computers in which the present invention may beimplemented. Communications system 100 includes an IP network 104, suchas the Internet. Additionally, communications system 100 also includescomputing devices 106, 108, IP telephony apparatus 112, and directoryserver 114. The computing device 108 is located behind a firewall 110,with respect to the IP network 104. While FIG. 1 shows firewall 110 as aseparate element for purposes of clarification, as is known to those ofordinary skill in the art, the firewall 110 may be resident on a serverto which the computing device 108 is connected or on the computingdevice 108 itself.

[0027] The IP network 104 in this example is the Internet, i.e. aworldwide collection of networks and gateways that use the TCP/IP suitesof protocols to communicate with one another. At the heart of theInternet is a backbone of high-speed data communication lines betweenmajor nodes or host computers, consisting of thousands of commercial,government, educational, and other computer systems that route data andmessages.

[0028] Computing devices 106 and 108 may be any type of computing deviceor data processing system that is capable of telephony communication.The computing devices 106 and 108 may have IP telephony communicationdevices incorporated into them or may have separate IP telephony devicesconnected to them via appropriate communication links. The computingdevices 106 and 108 may include, for example, a microphone and speakerarrangement for receiving voice input and providing audio output or maycommunicate with an IP telephony device via, for example, cables anddevice interfaces to receive voice input and provide audio output. Thecomputing devices 106 and 108 receive voice input, convert the voiceinput into IP data packets, and send the IP data packets over the IPnetwork 104 to a desired target device. Similarly, the computing devices106 and 108 receive IP telephony data packets, convert the IP telephonydata packets into digital signals and output the digital signals asaudio output via associated speakers.

[0029] While the description of the present invention references the useof IP telephony, the invention is not limited to the IP protocol.Rather, any communication protocol that may be used to conduct telephonycommunication may be used without departing from the spirit and scope ofthe present invention.

[0030] IP telephony apparatus 112 is any type of IP telephony apparatusthat is a dedicated IP telephony apparatus. IP telephony apparatus 112may be, for example, an IP telephone which is dedicated to providing IPtelephony communication over the IP network 104. The IP telephonyapparatus 112 receives voice input, converts the voice input into IPdata packets, and transmits the IP data packets over the IP network 104to a target device. Similarly, the IP telephony apparatus 112 receivesIP telephony data packets over the IP network 104, converts them intodigital signals which are then output as audio output via a speaker orhandset associated with the IP telephony apparatus 112.

[0031] The directory server 114 stores directory information forcomputing devices 106, 108, IP telephony apparatus 112, and other IPtelephony capable devices (not shown) which are connected to the IPnetwork 104. The directory server 114 may store such information aselectronic mail addresses, IP addresses, session initiation protocol(SIP) addresses, as well as other contact information such as users'names, IP network identifications, home addresses, home telephonenumber, office telephone number, mobile telephone number, pager number,facsimile number, and the like. While FIG. 1 shows directory server 114as a single server, the directory server 114 may be a cluster ofservers.

[0032] In accordance with the present invention, computing device 106,for example, may include an intelligent IP telephony device. Theintelligent IP telephony device is capable of updating local directoryinformation from the directory server 114, initiating IP telephonycommunications using “click to call” and information from either thedirectory server or a local directory, and/or performing advanced callprocessing without relying on a network server to perform thesefunctions.

[0033]FIG. 2 is an exemplary block diagram of an intelligent IPtelephony device 200 according to the present invention. As shown inFIG. 2, the intelligent IP telephony device 200 includes a userinterface 210, a controller 220, a main memory 225, an IP networkinterface 230, an incoming call processor 240, a click to call device250, a directory update device 260, and a directory storage device 270.These elements are in communication with one another via thecontrol/signal bus 280. Although a bus architecture is shown in FIG. 2,the invention is not limited to such an embodiment. Other architecturesthat provide a mechanism for communication among the elements 210-270may be used without departing from the spirit and scope of theinvention.

[0034] The controller 220 controls the operation of the intelligent IPtelephony device 200. The controller 220 makes use of control programsand instructions stored in main memory 225. The controller 220 initiateseach of the incoming call processor 240, the click to call device 250and the directory update device 260 based on user input via the userinterface 210 and information received via the IP network interface 230.

[0035] The user interface 210 may be any one or combination of inputdevices that may received input from a user and/or provide output to auser of the intelligent IP telephony device 200. For example, the userinterface 210 may include a keyboard, pointing device, microphone,speaker, display device, and the like.

[0036] The IP network interface 230 is a mechanism by which theintelligent IP telephony device 200 sends and receives information overthe IP network 104. The IP network interface 230 may make use of amodem, cable, or other type IP network 104 connection for thetransmission of information to and from the intelligent IP telephonydevice 200. The IP network interface 230 may further make use of an IPnetwork browser application, such as Netscape™ or Microsoft InternetExplorer™, to log onto an IP network 104 server in order to gain accessto the IP network 104.

[0037] The directory update device 260 performs functions necessary forupdating a local directory, stored in directory storage device 270,using information received from one or more directory servers 114 on theIP network 104. The directory update device 260 sends a request to adirectory server 114 for an update of directory information via the IPnetwork interface 230. When the updated information is received, thedirectory update device compares the updated information withinformation stored in the local directory and interacts with a user viathe user interface 210 to determine which information to retain in thelocal directory stored in directory storage device 270, as will bediscussed more fully hereafter.

[0038] The click to call device 250 performs functions for establishinga communication connection between the intelligent IP telephony device200 and a desired target device based on directory information retrievedfrom either the local directory in directory storage device 270 or fromthe directory server 114. The click to call device 250 allows a user toselect directory information being displayed on the user interface 210using a pointing device or other input device, and have a call initiatedto a device associated with the displayed directory information, as willalso be discussed in more detail hereafter.

[0039] The incoming call processor 240 performs a variety of intelligentprocessing functions on incoming IP telephony calls received via the IPnetwork interface 230. Based on different factors, such as time of day,day of the week, calendar dates, calling party identification, and thelike, the incoming call processor 240 may perform any of a number offunctions. These functions include ignoring the incoming call, playing agreeting, forwarding the call to another IP telephony number,redirecting the calling party to an IP network web page or initiating anelectronic mail program on the calling party's IP telephony device,initiating an application, and the like. Descriptions of these variousfunctions will be provided in more detail hereafter.

[0040] Thus, with the intelligent IP telephony device 200 of the presentinvention, a local directory may be updated from an IP network directoryserver, a click to call functionality is provided, and intelligentprocessing of incoming calls is provided. Accordingly, the intelligentIP telephony device 200 may be upgraded and customized easily by theuser of the intelligent IP telephony device 200.

[0041]FIG. 3 is an exemplary block diagram illustrating the manner bywhich the intelligent IP telephony device 200 may be used to update alocal directory stored in directory storage device 270. As shown in FIG.3, rather than establishing a communication connection directly betweenthe directory server 114 and the intelligent IP telephony device 200,communication is funneled through a web browser application 310 that isrunning locally on the computing device 108 with which the intelligentIP telephony device 200 is associated.

[0042] The user of the intelligent IP telephony device 200 logs onto thedirectory server using the web browser application 310. When thedirectory server 114 needs to communicate with the intelligent IPtelephony device 200, an applet is executed on the web browserapplication 310. An applet is a small application program having limitedutility.

[0043] The applet communicates with the directory server using hypertext transfer protocol (HTTP) and communicates with the intelligent IPtelephony device 200 directly because they are both resident on the samecomputing device 108. This allows the intelligent IP telephony device200 to communicate with the directory server 114 even when there is afirewall 110 present.

[0044] A firewall is a method used to keep a network secure. It can beimplemented in a single router that filters out unwanted packets, or itmay use a combination of technologies in routers and hosts. Firewallsare widely used to give users access to the Internet in a secure fashionas well as to separate a company's public Web server from its internalnetwork. Firewalls are also used to keep internal network segmentssecure.

[0045] The firewall 110 blocks direct access from the intelligent IPtelephony device 200 to the directory server 114. However, the firewall110 allows HTTP traffic to pass between the IP network 104 and the webbrowser application 310. Thus, by funneling the communication to thedirectory server 114 through the web browser application 310, usingHTTP, the intelligent IP telephony device 200 may circumvent thefirewall 110 and perform directory updates from the directory server114.

[0046] With reference again to FIG. 2, the user of the intelligent IPtelephony device 200 initiates a local directory update by entering anupdate command via the user interface 210. In response, the directoryupdate device 260 sends a request to the directory server 114 via the IPnetwork interface 230. This process may make use of the web browserapplication 310 which may already be running on the computing device 108or may be automatically initiated by the directory update device 260when the user's update command is received. The process of updating thelocal directory using the directory server 114 is also referred to as“synchronizing” the local directory with the directory server 114.

[0047] The request from the directory update device 260 initiates adownload of directory information from the directory server 114. Theparticular directory information downloaded may be based on anidentification of the user that requested the directory update,parameters entered by the user, or user associated information. Forexample, the downloaded information may be limited to those directorylistings that have been changed from a last update session identified,for example, by a date and time of the last download from the directoryserver 114.

[0048] These download criteria may be included in the request from thedirectory update device 260 when initiating the download of directoryinformation from the directory server 114. The downloaded directoryinformation may be temporarily stored as data files in a temporarystorage (not shown) or may be stored as data files on the directorystorage device 270 in a more permanent manner.

[0049] Either during the download of the directory information from thedirectory server 114 or after download from the directory server 114,the directory update device 260 determines which, if any, of thedownloaded directory listings has a corresponding listing in the localdirectory stored in the directory storage device 270. This may be done,for example, using a simple filename comparison. Alternatively, a morecomplex comparison taking into account actual data values within thefiles may be utilized. With the later approach, local directory filesand downloaded directory files which are an exact match may bedisregarded. Corresponding listings that are not exact matches may thenbe displayed to the user via the user interface 210.

[0050] The user may then choose to either accept the downloadeddirectory listing, keep the local directory listing, keep both listingsas separate listings in the local directory, or select variousinformation from both to compile a new directory listing. If the userchooses to accept the downloaded directory listing, the correspondinglocal directory listing is overwritten in the directory storage device270. If the user chooses to keep the local directory listing, thedownloaded directory listing is deleted. If the user chooses to keepboth listings, a new file is created with the downloaded directorylisting.

[0051] If the user chooses to create a new listing with information fromboth directory listings, directory listing information in the localdirectory listing is overwritten by the selected information from thedownloaded listing. Thus, information from the downloaded listing thatis not selected does not overwrite the local directory listinginformation. In this way a combination of both listings is created.

[0052] The above process is repeated for each instance of correspondingdirectory listings. When no more corresponding directory listings arefound, the directory update process is completed. When the directoryupdate process in completed, results information may be provided to theuser via the user interface 210.

[0053]FIG. 4 is an exemplary diagram of a directory listing for eitherthe directory server 114 or the local directory on the directory storagedevice 270. The graphical user interface 400 shown in FIG. 4 may bedisplayed to the user via the user interface 210 when the user selectsthe directory listing for placement of an IP telephony call, as will bedescribed hereafter.

[0054] As shown in FIG. 4, the directory listing graphical userinterface 400 includes fields for various personal contact informationregarding the person described by the directory listing. The personalcontact information includes, for example, the person's name (field401), address (field 402), SIP address (used for initiating SIPcommunications, i.e. IP telephony calls)(field 403), IP address (field404), electronic mail address (field 405), web page address (field 406),and various telephone, pager and facsimile numbers (fields 407). Inaddition, the directory listing provides fields 408 and 409 forincluding personal notes and for inclusion of a photograph of the persondescribed by the directory listing.

[0055]FIG. 5 is an exemplary diagram of a graphical user 500 interfacethat is displayed via the user interface 210 when displayingcorresponding local directory listings and directory server 114listings. As shown in FIG. 5, the same directory information that ispresent in FIG. 4 is displayed in the graphical user interface 500 shownin FIG. 5. In addition, the graphical user interface 500 includesvirtual buttons 510-530 for performing the functions of keeping thelocal directory listing, overwriting the local directory listing withthe downloaded listing, or keeping both listings. Although notexplicitly shown in FIG. 5, the graphical user display may also providethe function of selecting various information from both listings forcreation of a new directory listing.

[0056]FIG. 6 is an exemplary diagram of a graphical user interface 600representing the directory update results. As shown in FIG. 6, thegraphical user interface 600 provides information related to the numberof entries processed from the directory server 114 (field 605), thenumber of directory server listings ignored because they were identicalto local directory listings (field 610), the number of directory serverlistings that were used to replace local directory listings (field 620),the number of new local directory listings created (field 630), thenumber of new local directory listings that were created and did nothave a preexisting matching local directory listing (field 640), and thenumber of directory server listings that were ignored at the user'srequest (field 650).

[0057] In addition to updating the local directory in the directorystorage device 270, the intelligent IP telephony device 200 may make useof either the local directory or the directory server 114 listings toinitiate an IP telephony call to a desired party. This functionality isprovided by the click to call device 250.

[0058]FIG. 7A is an exemplary diagram of a graphical user interface 700provided by the click to call device 250 via the user interface 210 whenusing local directory information to initiate an IP telephony call.Alternatively, a similar graphical user interface may be obtained fromthe directory server 114 using a web browser, as shown in FIG. 7B. Asshown in FIG. 7A, the graphical user interface provides a listing ofavailable parties 710 with which an IP telephony call may be initiated.The user may highlight a desired party from the list using, for example,a keyboard or pointing device, and may then select the “call” icon 720to initiate an IP telephony call to the desired party.

[0059] Once an IP call to the desired party has been initiated, or whena desired party has been selected, a display of the desired party'sdirectory listing may be provided via the user interface 210. Forexample, a display similar to that shown in FIG. 4 may be provided tothe user for his/her information.

[0060] When an IP call is initiated using directory listing informationdirectly from the directory server 114, as shown in FIG. 7B, an appletmay be initiated for downloading the selected directory listing to theintelligent IP telephony device 200 such that the intelligent IPtelephony device 200 may initiate the IP telephony call to the desiredparty. As shown in FIG. 7B, this may be performed by selecting theappropriate directory listing and virtually pressing the virtual button“click here to call highlighted address.”

[0061] As an example of the click to call functionality, the name “ChrisJessen” is highlighted in the example shown in FIG. 7. If the user thenselects the “call” icon 720, an IP telephony call will be initiated withan IP telephony device associated with Chris Jessen. The IP telephonycall may be initiated using, for example, the Session InitiationProtocol (SIP) address for Chris Jessen, which is stored in thedirectory listing (see FIGS. 4 and 5). In addition, the directorylisting for Chris Jessen (FIG. 4) may be displayed to the user forhis/her information. The use of SIP addresses to initiate a SIPcommunications over an IP network is described, for example, in RFC 2543available at ftp://ftp.isi.edu/in-notes/rfc2543.txt, which is herebyincorporated by reference.

[0062] In addition to initiating an IP telephony call, the graphicaluser interface 700 also provides the ability to adjust the volume 730 ofthe intelligent IP telephony device 200, display a more completedirectory 740, initiate call screening functions 750 as will bediscussed further below, delete a directory listing 760, and obtainon-line help 770 for operating the intelligent IP telephony device 200.

[0063] The above description of the invention is directed to theupdating of local directory listings and the initiation of IP telephonycalls using these directory listings. In addition to initiating IPtelephony calls, the present invention provides a mechanism by whichintelligent processing of incoming calls may be performed. Inparticular, the incoming call processor 240 is used to performintelligent processing of incoming calls based on screening informationestablished by a user.

[0064] FIGS. 8-11 show an exemplary graphical user interface that may beprovided by incoming call processor 240 to a user via the user interface210 so that the user may establish screening information for use by theincoming call processor 240. As shown in FIG. 8, the graphical userinterface 800 includes a field 810 for identifying the receiving party'saddress, a field 811 for identifying the sending party's identifier(s)that is to be used for screen calls from the sending party, and tabbedscreening options 820-823 corresponding to “Time of Day,” “Day of Week,”“Until Date,” and “Always.” Each of the tabbed screening options 820-823has its own fields for entering screening information for use by theincoming call processor 240, as will be described more fully below. Inaddition, the graphical user interface 800 includes virtual buttons forcreating a new entry 830, removing an entry 831, saving an entry 832,canceling an action 833, and scrolling between entries 834.

[0065]FIG. 8 shows screening information for screening calls from anycaller having an identification “pat*” during a particular time of day.The “*” is a wildcard character that designates any string ofalpha-numeric characters. Thus, any identification whose first threecharacters are “pat” will be included in the character string “pat*.” Itshould be noted that the screening information may be set such that allcalls from all calling parties may be screened by entering only wildcardcharacters in the “number to screen” field.

[0066] As shown in FIG. 8, from a start time of 2:55 PM to an end timeof 10:55 PM (fields 840 and 841), calls from “pat*” will be ignoredbecause the “ignore incoming calls” field 842 has been selected.Although not selected in the particular example shown in FIG. 8, theuser also has the option of selecting the number of rings 843 before theincoming call processor 240 performs call screening functions, thegreeting to be played to the calling party 844, an address to forwardthe call to 845, a web page or electronic mail address to direct thecalling party to 846, or an application that is to be executed 847.

[0067] The greeting to be played may be, for example, a pre-recordedmessage that the user wishes a calling party to hear when the callingparty calls the user's intelligent IP telephony device 200. Thispre-recorded message may be stored, for example, as a .WAV file in theuser's intelligent IP telephony device 200.

[0068] The user may also enter an address to which to forward calls fromthe calling party “pat*.” Thus, if a user knows he/she will not be ableto be present at the user's intelligent IP telephony device 200 at aparticular time of day, the user may designate another address at whichhe will be able to receive incoming IP telephony calls. When a call froma particular calling party is received, the call will be forwarded tothe designated address using call forwarding in a manner generally knownto those of ordinary skill in the art. The address may take the form of,for example, a SIP address or IP address.

[0069] The user may also enter a web page address to which the callingparty will be directed when a call is received from that particularcalling party. When the calling party calls the user's intelligent IPtelephony device 200, the user's intelligent IP telephony device 200will instruct the calling party's IP telephony device to initiate a webbrowser application and enter the web page address in the appropriatefield of the web browser application such that the calling party ispresented with the desired web page.

[0070] Additionally, the user may enter an electronic mail address towhich he/she wishes the calling party to send an electronic mail note.When a call is received from the calling party, the user's intelligentIP telephony device 200 will instruct the calling party's IP telephonydevice to initiate an electronic mail application and will insert theelectronic mail address in the appropriate “To” field of the electronicmail application.

[0071] In addition to the above, the user may designate particularapplications that he/she wishes to be executed when a call is receivedfrom a particular calling party. These applications may be applicationsthat are to be executed on the user's computing device 108, for example,and/or applications that are to be executed on the calling party'scomputing device. Thus, for example, if a user has a telephoneconference scheduled with a calling party for a particular time of day,he/she may set up the screening information such that an Excelspreadsheet is opened when a call from the calling party is received.

[0072] With electronic mail and web browser programs, the computingdevices on which the intelligent IP telephony devices are resident orthe intelligent IP telephony devices themselves may be configured sothat when a command signal is received from another intelligent IPtelephony device, the electronic mail and web browser programs areautomatically executed. With other applications, the intelligent IPtelephony device that sends the command to execute the application musthave information pertaining to the application, such as the path andexecutable program name, for executing the application and forward thisinformation with the command to execute the application.

[0073]FIG. 9 shows the same graphical user interface 800 with the “Dayof Week” tabbed screening option 821 shown. The main difference betweenthe “Day of Week” and “Time of Day” screening options 820, 821 is thatthe days of the week are shown as optional screening information inplace of the time of day fields.

[0074]FIG. 10 shows the same graphical user interface 800 with the“Until Date” tabbed screening option 822 shown. The main differencebetween the “Until Date” screening option 822 and the other options isthat an “until date” is selectable rather than a time of day or day ofthe week. FIG. 11 shows the same graphical user interface 800 with the“Always” tabbed screening option 823 shown. The main difference betweenthe “Always” screening option 823 and the other options is that thereare no day of week, time of day, or until date fields provided. Rather,an “always screen” option is selectable.

[0075] The various tabbed options 820-823 may be performed exclusive ofone another or may be performed in conjunction with one another. Forexample, each tabbed option 820-823 may be provided with a prioritylevel. Thus, if there are two tabbed options selected, such as “Time ofDay” and “Day of Week”, the tabbed option “Day of Week” may be providedwith a higher priority than “Time of Day” and thus, only the screeninginformation associated with the “Day of Week” option will be used by theincoming call processor 240.

[0076] Alternatively, the tabbed options 820-823 may be performed in ahierarchical non-exclusive manner. Thus, if a user has “always” screeninformation active, this information will be used to screen calls from aparticular calling party that do not fall into a particular time of day,day of week or date range. If the user has particular “until date”screening information active, this information will be used for allcalls from a particular calling party falling within the date range thatdo not fall within a particular time of day or day of the week.Similarly, the “day of the week” screening information will be used toprocess incoming calls from a particular party that fall within the dayof the week screening criteria and do not fall within a particular timeof day. Lastly, the “time of day” screening information may be used withall calls from a particular party that fall within a particular time ofday.

[0077] Moreover, the invention is not limited to performing a singlecall screening function. Rather, a plurality of screening functions maybe performed when a call from a particular calling party is received.Thus, for example, when a call is received from a calling party “pat*,”the calling party may be directed to a particular web page as well ashave the call redirected to another address at which the user may bereached. Any number of the available call screening functions may beperformed together without departing from the spirit and scope of theinvention. Furthermore, a plurality of call forwarding addresses,applications to be executed, greetings, and the like may be designatedto be used in succession.

[0078] Additionally, the invention may perform incoming call screeningbased on an identifier of the called party. Thus, for example, if thereare many users of an intelligent IP telephony device 200, each user mayhave incoming call screening entries associated with them. When anincoming call is received, the intelligent IP telephony device 200 mayidentified the called party from an identifier in the incoming call andapply call screening functions identified by the call screening entriesassociated with the called party.

[0079] Thus, with the present invention, incoming IP telephony calls maybe screened by the user's intelligent IP telephony device 200 in any ofa number of customizable manners. The user may customize the intelligentprocessing of calls from a particular calling party, group of callingparties, or all calling parties such that the calls are ignored, playeda greeting, forwarded to another address, directed to a particular webpage or electronic mail address, and/or to have an particularapplication executed when the call is received.

[0080] The various functions of the intelligent IP telephony device 200will now be described in terms of flowcharts representing exemplaryoperations of the elements of the intelligent IP telephony device 200.The flowcharts shown in FIGS. 12-14 are only exemplary and are meantonly as an outline of the operations. Details of the operations may bedependent on the particular implementation of the invention.

[0081]FIG. 12 is a flowchart outlining an exemplary operation of thedirectory update device 260. As shown in FIG. 12, the operation startswith a request for a directory update being initiated (step 1201). Inresponse, the web browser applet for downloading the directory update isinitiated (step 1202). A communication connection is established withthe directory server 114 using, for example, HTTP (step 1203). Thedirectory update device 260 then receives the directory update from thedirectory server 114 (step 1204).

[0082] Either during the download process or after the download iscomplete, the directory update device 260 determines if there arecorresponding entries in the downloaded directory information and thelocal directory (step 1205). If there is no corresponding entries (step1206:NO), the directory update process either continues in the case thatthe determination is performed during the download, or the directoryupdate process is completed (step 1220), in the case that thedetermination is performed after the download process. If there arecorresponding entries (step 1206:YES), the directory update device 260determines if the user wishes to overwrite the local directory entry(step 1208), overwrite selection directory information in the localdirectory entry (step 1210), or add a new local entry using thedownloaded directory information (step 1212). If any of these optionsare selected by the user, the corresponding functions (steps 1209, 1211and 1213) are performed. If none of these options are selected, thedownloaded directory entry is deleted (step 1214). Once all of thedirectory entries are updated, the directory update device 260 displaysupdate results to the user via the user interface 210 (step 1215).

[0083]FIG. 13 is a flowchart outlining an exemplary operation of theclick to call device 250. As shown in FIG. 13, the operation starts withthe click to call device receiving a user selection of a desired partydirectory listing (step 1301). In response, the click to call device 250displays a detailed directory listing via the user interface 210 (step1302). If the selection is from the directory server and not the localdirectory (step 1303:YES), the directory listing is downloaded to theintelligent IP telephony device 200. If not, the local directory listingis used (step 1303:NO). The click to call device 250 then initiates anIP telephony call using address information from the directory listing(step 1305). The operation then ends (step 1306).

[0084]FIG. 14 is a flowchart outlining an exemplary operation of theincoming call processor 240. As shown in FIG. 14, the operation startswith the incoming call processor 240 receiving an incoming call (step1401). The incoming call processor 240 identifies the calling party(step 1402) and searches for a screen entry corresponding to the callingparty (step 1403). If a screen entry is not found (step 1404:NO), theoperation ends (step 1406). If a screen entry is found (step 1404:YES),appropriate screening functions are performed based on the screeninginformation in a manner set forth above (step 1405). The operation thenends (step 1406).

[0085] Thus, with the present invention, intelligent IP telephony callprocessing is performed without having to rely on network servers toperform these functions. In addition, a local directory may bemaintained and updated even if there are security precautions preventingdirect access from the intelligent IP telephony device 200 to thedirectory server. Furthermore, a user may make use of either remotelylocated directory information or local directory information to initiatean IP telephony call by clicking on a directory listing.

[0086] It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,such as computing devices 106 and 108, those of ordinary skill in theart will appreciate that the processes of the present invention arecapable of being distributed in the form of a computer readable mediumof instructions and a variety of forms and that the present inventionapplies equally regardless of the particular type of signal bearingmedia actually used to carry out the distribution. Examples of computerreadable media include recordable-type media such a floppy disc, a harddisk drive, a RAM, and CD-ROMs and transmission-type media such asdigital and analog communications links.

[0087] The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. For example, the present invention is not limited to anetwork distributed system as all of the application and SIP clients maybe present within a single data processing system. The embodiment waschosen and described in order to best explain the principles of theinvention, the practical application, and to enable others of ordinaryskill in the art to understand the invention for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A method in a communications system for updating,from a network directory server, a local telephony directory on atelephony device, comprising: establishing a communication connectionbetween the telephony device and the network directory server; sendingan update request to the network directory server through thecommunication connection; receiving updated telephony directoryinformation from the network directory server through the communicationconnection; and updating the local telephony directory based on theupdated telephony directory information.
 2. The method of claim 1,wherein establishing a communication connection between the telephonydevice and the network directory server includes initiating an applet tofacilitate communication with the network directory server and with thetelephony device.
 3. The method of claim 2, wherein the appletcommunicates with the network directory server using hypertext transferprotocol and communicates with the telephony device directly.
 4. Themethod of claim 1, wherein receiving updated telephony directoryinformation from the network directory server includes identifyingtelephony directory information for transmitting to the telephony devicebased on at least one of an identification of a user that initiated thesending of the update request, parameters entered by the user, and atime since the last update of the local telephony directory.
 5. Themethod of claim 1, further comprising identifying a first directorylisting in the updated telephony directory information that correspondsto a second directory listing in the local telephony directory.
 6. Themethod of claim 5, further comprising displaying the first directorylisting and the second directory at a same time.
 7. The method of claim5, further comprising receiving a user selection of one of overwritingthe second directory listing with the first directory listing, keepingthe second directory listing, overwriting selected information in thesecond directory listing with information from the first directorylisting, and adding a new directory listing in the local telephonydirectory corresponding to the first directory listing.
 8. The method ofclaim 1, further comprising displaying results of updating the localtelephony directory.
 9. The method of claim 1, wherein the establishing,sending, and receiving steps are performed using a network browserapplication and an applet for downloading updated telephony directoryinformation.
 10. The method of claim 9, wherein the network browserapplication and the telephony device reside on the same computingdevice.
 11. The method of claim 9, wherein the network browserapplication resides on a computing device and the telephony device iscoupled to the computing device.
 12. The method of claim 1, wherein thetelephony device is an IP telephony device.
 13. A computer programproduct in a computer-readable medium for use in a data processingsystem for updating, from a network directory server, a local telephonydirectory on a telephony device, comprising: first instructions forestablishing a communication connection between the telephony device andthe network directory server; second instructions for sending an updaterequest to the network directory server through the communicationconnection; third instructions for receiving updated telephony directoryinformation from the network directory server through the communicationconnection; and fourth instructions for updating the local telephonydirectory based on the updated telephony directory information.
 14. Atelephony apparatus for communicating over a network, comprising: acontroller; a network interface coupled to the controller; and adirectory update device coupled to the controller, wherein thecontroller establishes a communication connection between the telephonyapparatus and a network directory server via the network interface, thedirectory update device sends an update request to the network directoryserver, the directory update device receives updated telephony directoryinformation from the network directory server, and wherein the directoryupdate device updates a local telephony directory based on the updatedtelephony directory information.
 15. The apparatus of claim 14, whereinthe controller establishes a communication connection between thetelephony device and the network directory server by initiating anapplet to facilitate communication with the network directory server andwith the telephony device.
 16. The apparatus of claim 15, wherein theapplet communicates with the network directory server using hypertexttransfer protocol.
 17. The apparatus of claim 14, wherein the directoryupdate device identifies a first directory listing in the updatedtelephony directory information that corresponds to a second directorylisting in the local telephony directory.
 18. A method in acommunications system for updating, from a network directory server, alocal telephony directory on a telephony device, comprising:establishing a communication connection between the telephony device andthe network directory server; receiving an update request from thetelephony device through the communication connection; sending updatedtelephony directory information from the network directory serverthrough the communication connection, the updated telephony directoryinformation being used by the telephony device to update the localtelephony directory.
 19. The method of claim 18, further comprisingsending instructions to the telephony device to display results ofupdating the local telephony directory.
 20. A telephony apparatus thatinitiates a telephony call, over a network having a network directoryserver, to a receiving telephony device, comprising: a networkinterface; a controller coupled to the network interface; and a userinterface coupled to the controller, wherein the controller receivesdirectory information, from a directory on the network directory server,via the network interface, and receives, via the user interface, a userselection of a directory listing from the directory information, andwherein the controller initiates a telephony call from the telephonyapparatus to the receiving telephony device based on the user selection.21. The apparatus of claim 20, further comprising a display thatdisplays the directory information.
 22. The apparatus of claim 20,wherein the controller downloads, from the network directory server tothe telephony apparatus, directory listing information for the receivingtelephony device in response to receiving the user selection, andwherein the telephony call is initiated from the telephony apparatusbased on the downloaded directory listing information.
 23. The apparatusof claim 20, wherein the user interface includes a graphical userinterface.
 24. A method in a communications system for intelligentprocessing of an incoming telephony call, the intelligent processingbeing performed in an endpoint device, comprising: receiving, in theendpoint device, the incoming telephony call from a call source via anetwork; identifying, in the endpoint device, a call screening entryassociated with the call source; and screening the incoming telephonycall based on the call screening entry.
 25. The method of claim 24,wherein the call screening entry identifies at least one screeningfunction to be performed when a call from the call source is received.26. The method of claim 25, wherein the at least one call screeningfunction is performed based on at least one of time of day, day of theweek, a date range, and always being performed.
 27. The method of claim25, wherein the at least one call screening function includes at leastone of ignoring the call, playing a greeting, forwarding the call toanother telephony address, forwarding the call to a web page address,forwarding the call to an electronic mail address, and executing anapplication.
 28. The method of claim 25, wherein the at least one callscreening function is performed based on more than one of time of day,day of the week, a date range, and always being performed.
 29. Themethod of claim 25, wherein the at least one call screening functionincludes more than one of ignoring the call, playing a greeting,forwarding the call to another telephony address, forwarding the call toa web page address, forwarding the call to an electronic mail address,and executing an application.
 30. The method of claim 27, wherein, ifthe at least one call screening function includes forwarding the call toa web page address, the method further includes sending a command to thecall source instructing the call source to initiate a web browserapplication and inserting the web page address in the web browserapplication such that a desired web page is displayed on the callsource.
 31. The method of claim 27, wherein, if the at least one callscreening function includes forwarding the call to an electronic mailaddress, the method further includes sending a command to the callsource, via the network interface, instructing the call source toinitiate an electronic mail application and inserting the electronicmail address in the electronic mail application.
 32. A computer programproduct in a computer-readable medium for use in a data processingsystem for intelligent processing of an incoming telephony call, theintelligent processing being performed in an endpoint device,comprising: first instructions for receiving, in the endpoint device,the incoming telephony call from a call source via a network; secondinstructions for identifying, in the endpoint device, a call screeningentry associated with the call source; and third instructions forscreening the incoming telephony call based on the call screening entry.33. A telephony apparatus for use with a network, comprising: a networkinterface coupled to the network for communicating via the network; acontroller coupled to the network interface, and a storage device,wherein the controller receives an incoming telephony call from a callsource via the network interface, identifies a telephony call screeningentry stored in the storage device associated with the call source, thetelephony call screening entry identifying a different communicationtype from the telephony call to use in communicating with the telephonyapparatus, and wherein the controller screens the incoming telephonycall based on the telephony call screening entry.
 34. A method ofinitiating a telephony call, over a network having a network directoryserver, from a sending telephony device to a receiving telephony device,comprising: identifying, from a directory on the network directoryserver, an identifier of the receiving telephony device; downloading,from the network directory server to the sending telephony device,directory listing information for the receiving telephony device; andinitiating a telephony call from the sending telephony device to thereceiving telephony device based on the downloaded directory listinginformation.